const Router=require('koa-router')
let router=new Router()
const uuid=require('uuid')
const config=require('../libs/config.js')


// 验证路由函数判断是否登录
let testRouter=async (ctx,next,token)=>{
  if(!token){
    ctx.body={err:1,data:'请先进行登录'}
    console.log(11111111111111111111111111111111111111111111111111111111111111)
    return
  }
  let data=await ctx.db.query(`SELECT id,token_time FROM user_table WHERE token=${token}`)
  if(data[0]){
    let {token_time,id}=data[0]
    if(Date.now()>token_time){
      ctx.body={err:1,data:'请先进行登录'}
    }else{
      await next()
    }
  }else{
    ctx.body={err:1,data:'请先进行登录'}
  }
}

//判断是否登录post请求
if(config.test_router.post){
  config.test_router.post.forEach(item=>{
    router.post(item,async (ctx,next)=>{
      console.log(ctx.request.fields.token)
      await testRouter(ctx,next,ctx.request.fields.token)
    })
  })
}
//判断是否登录get请求
if(config.test_router.get){
  config.test_router.get.forEach(item=>{
    router.get(item,async (ctx,next)=>{
      await testRouter(ctx,next,ctx.query.token)
    })
  })
}







//登录账号
router.get('/api/login',async ctx=>{

  let data=await ctx.db.query("SELECT * FROM `user_table` WHERE account=?",[ctx.query.account])
  console.log(data)

   if(data[0]){
    console.log(11111)
    if(data[0].password==ctx.query.password){
      let token=uuid.v4().replace(/\-/g,"")
      let token_time=Date.now()+config.token_age
      console.log(config.token_age)
      await ctx.db.query("UPDATE `user_table` SET `token`=?,`token_time`=? WHERE account=?",[token,token_time,ctx.query.account])


      ctx.body={
        err:0,
        data:{
          msg:"登录成功",
          username:data[0].username,
          account:data[0].account,
          token,
          headportrait_url:data[0].headportrait_url 
        }
      }
    }else{
      ctx.body={err:1,data:"密码错误"}
    }
  }else{
    ctx.body={err:1,data:"账号不存在"}
  }



})

//注册账号
router.post('/api/reg',async ctx=>{
  try{
    let data=await ctx.db.query("SELECT * FROM `user_table`")
    let flag = data.some(item => item.account==ctx.request.fields.account);
    if(flag){
      ctx.body={
        err:1,
        data:"注册失败，账号已存在"
      }
    }else{
      console.log(111111111111111111111111111111111)
      await ctx.db.query('INSERT INTO user_table( account, username, password,headportrait_url,token,token_time ) VALUES (?,?,?,?,?,?)',[
        ctx.request.fields.account,
        ctx.request.fields.username,
        ctx.request.fields.password,
        `${config.root}:${config.port}/img/none.png`,
        0,
        0
      ])
      ctx.body={err:0,data:"注册成功"}
    }
  }catch(e){
    console.log(e)
    ctx.body={
      err:1,
      data:'注册失败，数据库错误'
    }
  }

})


//更新个人资料
router.post('/api/updataTouxiang',async ctx=>{
  let {path}=ctx.request.files[0]
  let {token,username}=ctx.request.fields
  let db=ctx.request.files[0].size!=0?`update user_table set username=?,headportrait_url=? where token=${token}`:`update user_table set username=? where token=${token}`




  // if(ctx.request.files[0].size!=0){
    path=`${config.root}:${config.port}/upload/upload_`+path.split("upload_")[1]
    await ctx.db.query(db,[username,path])
    let data=await ctx.db.query(`SELECT * FROM user_table WHERE token=${token}`)
    ctx.body={
      err:0,
      data
    }
    
  // }
})




// 获取轮播图数据
router.get('/api/swipe',async ctx=>{
  let data=await ctx.db.query('select * from swipe');
  ctx.body={err:0,data}
})

// 获取新闻列表数据
router.get('/api/newsList',async ctx=>{
  let data=await ctx.db.query('select * from news_list')
  ctx.body={err:0,data}
})


//获取新闻详情
router.get('/api/newsInfo/:id',async ctx=>{
  let data=await ctx.db.query('select * from news_list where id=?',[ctx.params.id])
  ctx.body={err:0,data:data[0]}
})

//获取评论列表
router.get('/api/comment/:id/:page',async ctx=>{
  let data=await ctx.db.query('select * from comment where comment_id=? order by add_time desc limit ?,10',[ctx.params.id,(ctx.params.page-1)*10])
  ctx.body={err:0,data}

})
//添加评论
router.post('/api/comment/:id',async ctx=>{
 let date=new Date();
 let add_time = date.getTime()
 try {
   console.log(1111111111111111111111111111111111111111111111111)
  await ctx.db.query('insert into comment(comment_id,username,add_time,content,img_url) values(?,?,?,?,?)',[ctx.params.id,ctx.request.fields.username,add_time,ctx.request.fields.value,ctx.request.fields.img_url])
  ctx.body={err:0,data:"已BB"}
 } catch (error) {
   ctx.body={err:1,data:"BB失败"}
 }
})


//获取图文分享的菜单
router.get('/api/photo/menu',async ctx=>{
  let data=await ctx.db.query('select * from img_menu ORDER BY id')
  ctx.body={err:0,data}
})

//获取图文列表
router.get('/api/photo/photoList/:id',async ctx=>{
  let data;
  if(ctx.params.id==0){
    data=await ctx.db.query('select * from img_list')
  }else{
    data=await ctx.db.query('select * from img_list where prent_id=?',[ctx.params.id])
  }
  ctx.body={err:0,data}
})

//获取图文列表详情
router.get('/api/photo/photoInfo/:id',async ctx=>{
  let data=await ctx.db.query('select * from img_list where id=?',[ctx.params.id])
  ctx.body={err:0,data:data[0]}
})

//获取图片数据
router.get('/api/pic/:id',async ctx=>{
  let data=await ctx.db.query('select img_url from pic where prent_id=?',[ctx.params.id])
  ctx.body={err:0,data}
})



//获取商品列表
router.get('/api/shopList',async ctx=>{
  let data=await ctx.db.query('select * from shop_list limit ?,6',[(ctx.query.pageIndex-1)*6])
  ctx.body={err:0,data}
})
//获取商品详情
router.get('/api/shopInfo/:id',async ctx=>{
  let data=await ctx.db.query('select * from shop_list where id=?',[ctx.params.id])
  ctx.body={err:0,data}
})
module.exports=router